home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1997-02-24 | 4.6 KB | 166 lines |
- 10 'CONJUMAT - Conjugate Match Calculator - 15 MAR 96 rev. 24 FEB 97
- 20 CLS:KEY OFF
- 30 IF EX$=""THEN EX$="EXIT"
- 40 IF PROG$=""THEN GO$=EX$ ELSE GO$=PROG$
- 50 COMMON EX$,PROG$
- 60 COLOR 7,0,1
- 70 UL$=STRING$(80,205)
- 80 B$=STRING$(80,32)
- 90 U$="#####.###"
- 100 E=2.71858 'base of natural logarithms
- 110 GOTO 180
- 120 '
- 130 '.....format input line
- 140 LOCATE CSRLIN-1:PRINT SPC(7);
- 150 LOCATE CSRLIN,47:PRINT STRING$(7,".");USING U$;ZZ;
- 160 RETURN
- 170 '
- 180 '.....start
- 190 CLS
- 200 COLOR 15,2
- 210 PRINT " CONJUGATE MATCH CALCULATOR";TAB(57);"by George Murphy VE3ERP ";
- 220 COLOR 1,0:PRINT STRING$(80,223);
- 230 COLOR 7,0
- 240 '
- 250 T=7
- 260 PRINT TAB(T);
- 270 PRINT "This program is a basic design tool to help determine the conditions"
- 280 PRINT TAB(T);
- 290 PRINT "existing when connecting a transmitter to a complex load, such as an"
- 300 PRINT TAB(T);
- 310 PRINT "antenna, via a transmission line of known characteristics."
- 320 PRINT
- 330 PRINT TAB(T);
- 340 PRINT "The program will ask you to enter the feedline attenuation in dB,"
- 350 PRINT TAB(T);
- 360 PRINT "if known. You may be able to calculate this value by using one of"
- 370 PRINT TAB(T);
- 380 PRINT "the other programs listed below."
- 390 PRINT UL$;
- 400 PRINT " Press number in < > to:"
- 410 PRINT UL$;
- 420 Z$=CHR$(34)
- 430 PRINT " < 1 > RUN this program
- 440 PRINT
- 450 PRINT " < 2 > Run ";Z$;"COAXIAL CABLE CHARACTERISTICS";Z$;" program"
- 460 PRINT " < 3 > Run ";Z$;"TRANSMISSION LINE LOSSES";Z$;" program"
- 470 PRINT " < 4 > Run ";Z$;"TRANSMISSION LINES - OPEN WIRE";Z$;" program"
- 480 PRINT
- 490 PRINT " < 0 > EXIT"
- 500 '
- 510 Z$=INKEY$:IF Z$=""THEN 510
- 520 IF Z$="0"THEN CLS:CHAIN GO$
- 530 IF Z$="1"THEN 590
- 540 IF Z$="2"THEN CLS:CHAIN "coaxchar"
- 550 IF Z$="3"THEN CLS:CHAIN "lineloss"
- 560 IF Z$="4"THEN CLS:CHAIN "openwire"
- 570 GOTO 510
- 580 '
- 590 '.....inputs
- 600 CLS
- 610 GOSUB 1330 'diagram
- 620 '
- 630 COLOR 15
- 640 INPUT " ENTER: Transmitter output....................(watts)";W
- 650 ZZ=W:GOSUB 130:PRINT " watts"
- 660 COLOR 7
- 670 '
- 680 INPUT " ENTER: Characterisic impedance of feedline... (ohms)";ZO
- 690 ZZ=ZO:GOSUB 130:PRINT " ohms"
- 700 '
- 710 INPUT " ENTER: Complex load resistive component......(ohms)";R
- 720 ZZ=R:GOSUB 130:PRINT " ohms"
- 730 '
- 740 COLOR 0,7
- 750 PRINT " Is the reactive component (i)nductive or (c)apacitive? (i/c) "
- 760 COLOR 7,0
- 770 Z$=INKEY$:IF Z$=""THEN 770
- 780 IF Z$="i"THEN J$="+ j":Z$="inductive component..":GOTO 810
- 790 IF Z$="c"THEN J$="- j":Z$="capacitive component.":GOTO 810
- 800 GOTO 770
- 810 LOCATE CSRLIN-1:PRINT B$;:LOCATE CSRLIN-1
- 820 '
- 830 PRINT " ENTER: Value of ";Z$;".........(ohms)";:INPUT X
- 840 LN=CSRLIN-2:VIEW PRINT LN TO 24:CLS:VIEW PRINT:LOCATE LN
- 850 R=R/ZO:X=X/ZO
- 860 B=((X^2+1)/R)+R
- 870 SWR=(B+SQR(B^2-4))/2
- 880 X$=STR$(ABS(X*ZO)):X$=RIGHT$(X$,LEN(X$)-1)
- 890 PRINT " Complex load impedance.......................";
- 900 '
- 910 PRINT R*ZO;J$;X$;" ohms"
- 920 PRINT " SWR at load R................................";USING U$;SWR;
- 930 PRINT ":1"
- 940 '
- 950 P=(SWR-1)/(SWR+1) 'reflection coefficient
- 960 PRINT " Reflection coefficient.......................";USING U$;P
- 970 '
- 980 INPUT " ENTER: Attenuation of feedline when matched.....(dB)";LM
- 990 ZZ=LM:GOSUB 130:PRINT " dB"
- 1000 BB=10^(LM/10)
- 1010 DB=10*LOG((BB^2-P^2)/(BB*(1-P^2)))/LOG(10) 'converted to base 10
- 1020 '
- 1030 PRINT " Additional loss due to SWR...................";
- 1040 PRINT USING U$;DB-LM;:PRINT " dB"
- 1050 PRINT " TOTAL feedline Attenuation ..................";USING U$;DB;
- 1060 PRINT " dB"
- 1070 A=DB/8.686 'attenuation in nepers
- 1080 PRINT TAB(53);"=";:PRINT USING U$;A;:PRINT " nepers"
- 1090 '
- 1100 SI=(BB+P)/(BB-P)
- 1110 PRINT " SWR at conjugate matching point..............";USING U$;SI;
- 1120 PRINT ":1"
- 1130 '
- 1140 W1=W*1/(1-P^2*E^-(4*A))
- 1150 PRINT " Forward power at conjugate matching point....";USING U$;W1;
- 1160 PRINT " watts"
- 1170 '
- 1180 W2=W*E^-(2*A)/(1-P^2*E^-(4*A))
- 1190 PRINT " Forward power arriving at mismatched load R..";USING U$;W2;
- 1200 PRINT " watts"
- 1210 '
- 1220 W3=W*(1-P^2)*E^-(2*A)/(1-P^2*E^-(4*A))
- 1230 COLOR 15
- 1240 PRINT " Power absorbed in the load R.................";USING U$;W3;
- 1250 PRINT " watts"
- 1260 COLOR 7
- 1270 '
- 1280 W4=W*P^2*E^-(2*A)/(1-P^2*E^-(4*A))
- 1290 PRINT " Power Reflected..............................";USING U$;W4;
- 1300 PRINT " watts";
- 1310 GOTO 1480
- 1320 '
- 1330 '.....diagram
- 1340 T=21:COLOR 0,7
- 1350 LOCATE ,T:PRINT " CONJUGATE MATCH "
- 1360 LOCATE ,T:PRINT " "
- 1370 LOCATE ,T:PRINT " CALLDEFSNGSOUNDSOUNDSOUNDSOUNDSOUNDSOUND feedline SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDDEFDBLCALL "
- 1380 LOCATE ,T:PRINT " VARPTRSOUNDSOUNDSOUNDCOLOR VARPTRSOUNDSOUNDSOUNDCOLOR "
- 1390 LOCATE ,T:PRINT " DEFDBLSOUND<0xB4!> T <UNK! {FEC4}>SOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUNDSOUND<0xB4!> R CALL "
- 1400 LOCATE ,T:PRINT " CLSSOUNDSOUNDSOUND' CLSSOUNDSOUNDSOUND' "
- 1410 LOCATE ,T:PRINT " T = Transmatch or transmitter output "
- 1420 LOCATE ,T:PRINT " <UNK! {FE20}>= Conjugate matching point "
- 1430 LOCATE ,T:PRINT " R = Complex load (e.g. an antenna) "
- 1440 LOCATE ,T:PRINT " "
- 1450 COLOR 7,0
- 1460 RETURN
- 1470 '
- 1480 '.....end
- 1490 GOSUB 1530
- 1500 GOTO 180
- 1510 END
- 1520 '
- 1530 'HARDCOPY
- 1540 GOSUB 1650:LOCATE 25,2:COLOR 14,6
- 1550 PRINT " Press 1 to print screen, 2 to print screen & ";
- 1560 PRINT "advance paper, or 3 to continue.";:COLOR 7,0
- 1570 Z$=INKEY$:IF Z$="3"THEN GOSUB 1650:RETURN
- 1580 IF Z$="1"OR Z$="2"THEN GOSUB 1650:GOTO 1600
- 1590 GOTO 1570
- 1600 FOR QX=1 TO 24:FOR QY=1 TO 80
- 1610 LPRINT CHR$(SCREEN(QX,QY));
- 1620 NEXT QY:NEXT QX
- 1630 IF Z$="2"THEN LPRINT CHR$(12)
- 1640 GOTO 1540
- 1650 LOCATE 25,1:PRINT STRING$(80,32);:RETURN
-